package br.com.sistema.dao;

import java.util.List;

import javax.persistence.Query;

import br.com.sistema.entidade.Produto;

public class ProdutoDAOImplements extends GenericDAOImplements<Produto> implements ProdutoDAO {

	private static final long serialVersionUID = 1L;

	public ProdutoDAOImplements() {
		super(Produto.class);
	}

	@Override
	public Produto pesquisarPorDescricao(String descricao) {
		try {
			abrirTransacao();
			Query query = em.createQuery("select p from Produto p where p.descricao like :descricao");
	        query.setParameter("descricao", "%" + descricao + "%");
	        return (Produto) query.getSingleResult();
		} finally {
			fecharTransacao();
		}
	}

	@Override
	public List<Produto> listarProdutosMaisVendidos() {
		abrirTransacao();
		Query query = em.createQuery("select p from Produto p order by quantidadeVendida desc, descricao");
		return (List<Produto>) query.getResultList();
	}

}
